/**
 * 登录模块
 * 处理用户登录相关的所有功能
 */
// 导入 api 服务
import api from '@/services/request';
// 导入登录端点
import { loginEndpoints } from './endpoints';
// 导入登录凭证和响应类型
import { LoginCredentials, LoginResponse } from './types';

/**
 * 登录服务对象
 */
export const loginService = {
  /**
   * 用户登录
   * @param credentials 登录凭证
   * @returns 登录响应数据
   */
  async login(credentials: LoginCredentials): Promise<LoginResponse> {
    const response = await api.post<LoginResponse>(loginEndpoints.login, credentials);
    return response.data;
  },

  /**
   * 用户登出
   * 清除本地存储的 token
   */
  async logout(): Promise<void> {
    await api.post(loginEndpoints.logout);
    localStorage.removeItem('token');
  },

  /**
   * 获取本地存储的 token
   * @returns token 字符串或 null
   */
  getToken(): string | null {
    return localStorage.getItem('token');
  },

  /**
   * 设置本地存储的 token
   * @param token JWT token
   */
  setToken(token: string): void {
    localStorage.setItem('token', token);
  },

  /**
   * 检查用户是否已认证
   * @returns 是否已认证
   */
  isAuthenticated(): boolean {
    return !!this.getToken();
  },
}; 